package com.dimples.dd.system.mapper;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dimples.dd.mybatis.core.query.LambdaQueryWrapperX;
import com.dimples.dd.system.model.entity.SystemUserPostDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.Collection;
import java.util.List;
import java.util.Set;

@Mapper
public interface SystemUserPostMapper extends com.dimples.dd.mybatis.core.mapper.BaseMapperX<SystemUserPostDO> {

    /**
     * 根据用户ID查询岗位信息
     *
     * @param userId 用户ID
     * @return 用户岗位信息
     */
    default List<SystemUserPostDO> selectListByUserId(Long userId) {
        return selectList(SystemUserPostDO::getUserId, userId);
    }

    /**
     * 根据用户ID删除用户岗位信息
     *
     * @param userId 用户ID
     */
    default void deleteByUserIdAndPostId(Long userId, Collection<Long> deletePostIds) {
        delete(new LambdaQueryWrapperX<SystemUserPostDO>()
                .eq(SystemUserPostDO::getUserId, userId)
                .in(SystemUserPostDO::getPostId, deletePostIds));
    }

    /**
     * 根据用户ID删除用户岗位信息
     *
     * @param userIds 用户ID
     */
    default void deleteByUserIds(Set<String> userIds) {
        delete(Wrappers.lambdaUpdate(SystemUserPostDO.class).in(SystemUserPostDO::getUserId, userIds));
    }
}